1. Field of the Invention
The present invention relates to a communication terminal, a communication method, and a communication control program, and more particularly, to a communication terminal, a communication method, and a communication control program suitably applied to a congestion control method for TCP (Transmission Control Protocol).
2. Description of the Related Art
Nowadays, in TCP, which is widely used on the Internet, for avoiding network congestion, congestion control is performed using a congestion window (CWND) when a segment is transmitted.
Generally, in a congestion control algorithm of TCP, a congestion window (CWND) is set as follows:
1. At reception of an ACK (Acknowledgement)
1.1. At Slow StartCWND(n+1)=CWND(n)+a×MSS
1.2. At Congestion AvoidanceCWND(n+1)=CWND(n)+a/CWND(n)
2. At Packet loss occurrenceCWND(n+1)=(1−b)×CWND(n)
In the above expressions, MSS (Maximum Segment Size) is a maximum size of a segment which a sending side can transmit. And, CWND (Congestion Window) is a TCP state variable which limits a sendable size of TCP.
In a regular TCP, a and b are used as a=1 and b=0.5.
In this congestion control algorithm of TCP, because CWND is decreased in the event of a segment loss to perform congestion control, CWND continues to increase unless a segment loss occurs. Therefore, since CWND increases unless a segment loss occurs, a utilization factor of a receive buffer of a relay node increases, and thereby RTT (Round Trip Time) increases.
For example, a method is disclosed in which, with consideration given to Slow Start of the sending side, a receiving side notifies a sending side of twice the number of bytes that are read in an application within 1 RTT (rcv_bytes) as an advertised window, and the sending side inhibits transmission traffic of segments to twice the rcv_bytes, so that transmission of excess segments is prevented (see Dynamic Right-Sizing in TCP Mike Fisk and W. Feng 2nd Annual Los Alamos Computer Science Institute Symposium (LACSI2001), Snta Fe, N. Mex., October 2001).
FIG. 7 is a diagram which shows a conventional RTT measurement method. Each segment is assumed to have 10 bytes of data, and an initial sequence number of each segment is indicated as seq in the diagram.
In FIG. 7, at the TCP receiving side 32, a time in which ack (acknowledge number)+rcv_wnd's seq (sequence number)−1 is received from the TCP sending side 31 using the advertised window (rcv_wnd) can be determined as 1 RTT.
For example, if ack=210 and rcv_wnd=60, a time to receive seq=210 to seq=269 (ack+rcv_wnd−1) from the TCP sending side 31 can be determined as 1 RTT at TCP receiving side 32.
However, in the above described method, since measurement of RTT and calculation of rcv_bytes are performed at the TCP receiving side 32, there are problems that measurement accuracy of RTT is degraded and excess segments are transmitted.
FIG. 8 is a diagram which shows a problem of a conventional RTT measurement method.
In FIG. 8, if CWND is smaller than rcv_wnd, RTT that is longer than usual is measured and rcv_bytes is increased, and therefore excess segments are transmitted. For example, if ack=210, rcv_wnd=60, and CWND=40, an interval between transmission times of seq=230 and seq=240 is increased. Consequently, since a time in which seq=210 to seq=269 are received is determined as 1 RTT at TCP receiving side 32, RTT that is longer than usual is measured.
Additionally, in the above described method, relative to the ideal case for notifying a sending side of twice rev_bytes as an advertised window and utilizing a maximum value of measured rcv_bytes, that is, “the number of bytes sent in 1 RTT=the number of bytes received in 1 RTT”, excess segments are transmitted.
Accordingly, an object of the present invention is to provide a communication terminal, a communication control method, and a communication control program which can effectively inhibit transmission of excess segments to a network.